package com.cs.framework.jdbc.common.dao;

import java.util.List;

import javax.sql.DataSource;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * 使用JdbcTemplate的dao
 * 
 * @author hedongzhou
 * 
 */
public class JdbcTemplateDao {

	protected JdbcTemplate template;

	public JdbcTemplateDao(DataSource dataSource) {
		template = new JdbcTemplate(dataSource);
	}

	/**
	 * 查询一条数据
	 * 
	 * @param <T>
	 * @param sql
	 *            脚本
	 * @param cls
	 *            结果类型
	 * @param params
	 *            参数
	 * @return
	 */
	public <T> T queryOne(String sql, Class<T> cls, Object... params) {
		return template.queryForObject(sql, params, new BeanPropertyRowMapper<T>(cls));
	}

	/**
	 * 查询列表
	 * 
	 * @param <T>
	 * @param sql
	 *            脚本
	 * @param cls
	 *            结果类型
	 * @param params
	 *            参数
	 * @return
	 */
	public <T> List<T> queryList(String sql, Class<T> cls, Object... params) {
		return template.query(sql, params, new BeanPropertyRowMapper<T>(cls));
	}

}
